package projet1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class Utils
{
    /*
     * @pre : un fichier valide dont on veut lire le texte
     * @post : le texte prÃ©sent dans le fichier
     */
    public static String getTextInFile(File file) throws IOException
    {
        BufferedReader reader = null;
        reader = new BufferedReader(new InputStreamReader(
                new FileInputStream(file),
                "US-ASCII"));

        String text = "";
        String line;

        boolean first = true;
        while ((line = reader.readLine()) != null)
        {
            text += (first ? "" : "\n") + line;
            first = false;
        }
        reader.close();
        //Facultatif
        //Suppression d'un caractÃ¨re ennuyant au dÃ©but de certains fichiers : http://en.wikipedia.org/wiki/Byte_order_mark
        if (text.length() > 0 && text.charAt(0) == '\uFEFF')
        {
            text = text.substring(1);
        }
        //Fin facultatif
        return text;
    }

    /*
     * @pre : file, un fichier valide dans lequel on veut Ã©crire, text, le texte que l'on veut ecrire, overwrite, dÃ©terminant si on Ã©crit Ã  la fin du fichier
     * @post : /
     */
    public static void writeTextInFile(File file, String text, boolean overwrite) throws FileNotFoundException, IOException
    {
        PrintWriter writer = new PrintWriter(new BufferedWriter(
                new OutputStreamWriter(
                new FileOutputStream(file, !overwrite),
                "US-ASCII")));

        writer.print(text);

        writer.close();
    }
}